The subject application is directed to generally to rendering of electronic documents. The subject application is particularly applicable to memory efficient rendering of objects having attributes, such as opacity information, embedded therein.
Electronic document are currently generated by many software applications, such as word processors, image processing, photo editing, computer aided design, scanning, facsimile transmission, drawing, and the like. Many such applications support rendering to generate tangible document output. Common outputs include pixel based or bitmapped rendering on laser printers, ink jet printers, or other dot matrix output devices.
Newer generation document output formats include more information so as to be descriptive of increasingly complex attributes, which need to be processed by document rendering devices. By way of example, Microsoft WINDOWS VISTA currently employs extensible markup language (XML) in its implementation. WINDOWS VISTA further employs an XML page specification (XPS) as its printer format. The XPS format specifies transparent objects to be rendered within nested instances of Canvases as individual elements.
Any XPS file can potentially contain transparent objects. However, there is no indication at the start of a page whether the current page contains transparent objects. Transparency is determined only upon such point as a transparent object is encountered. Thus, each print file must be treated as a transparency page. A raster image processor associated with a typical imaging device possesses a finite amount of memory making it difficult or impossible to treat each print page as a transparency page.